import axios from './axios';
import {message} from 'antd';

function handleError(error: any) {
  // 处理异常情况
  message.error('请求出错，请稍后再试' + error);
}

async function queryAllSchool() {
  try {
    const {data} = await axios.post('/school/v1/queryAllSchool');
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
      return [];
    }
  } catch (error) {
    handleError(error);
  }
}


async function login(reqData: any) {
  try {
    const {data} = await axios.post('/teacher/v1/login', reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
      return false;
    }
  } catch (error) {
    handleError(error);
  }
}

async function queryTeacher(reqData: any) {
  try {
    const {data} = await axios.post('/teacher/v1/queryTeacher', reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
      return false;
    }
  } catch (error) {
    handleError(error);
  }
}

async function deleteTeacher(reqData: any) {
  try {
    const {data} = await axios.post('/teacher/v1/deleteTeacher', reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
      return false;
    }
  } catch (error) {
    handleError(error);
  }
}

async function updateOrAdd(reqData: any) {
  try {
    const {data} = await axios.post('/teacher/v1/updateOrAdd', reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
      return false;
    }
  } catch (error) {
    handleError(error);
  }
}


async function queryCourse(reqData: any) {
  try {
    const {data} = await axios.post('/course/v1/queryCourse', reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}

async function deleteCourse(reqData: any) {
  try {
    const {data} = await axios.post('/course/v1/deleteCourse', reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}

async function addCourse(reqData: any) {
  try {
    const {data} = await axios.post('/course/v1/addCourse', reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}

async function updateCourse(reqData: any) {
  try {
    const {data} = await axios.post('/course/v1/updateCourse', reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}

async function queryAllCourse() {
  try {
    const {data} = await axios.post('/course/v1/queryAllCourse');
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}

async function queryWork(reqData: any) {
  try {
    const {data} = await axios.post('/work/v1/queryWork',reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}

async function addLearnRecordByHand(reqData: any) {
  try {
    const {data} = await axios.post('/learnRecord/v1/addByHand',reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}

async function overview() {
  try {
    const {data} = await axios.post('/teacher/v1/overview');
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}

async function addWork(reqData: any) {
  try {
    const {data} = await axios.post('/work/v1/addWork',reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}

async function deleteBatchLearnRecord(reqData: any) {
  try {
    const {data} = await axios.post('/learnRecord/v1/deleteBatch',reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}

async function resetPassword(reqData: any) {
  try {
    const {data} = await axios.post('/teacher/v1/resetPassword', reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}

async function changePassword(reqData: any) {
  try {
    const {data} = await axios.post('/teacher/v1/changePassword', reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}
async function deleteWork(reqData: any) {
  try {
    const {data} = await axios.post('/work/v1/deleteWork', reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}

async function updateLearnRecord(reqData: any) {
  try {
    const {data} = await axios.post('/learnRecord/v1/updateLearnRecord', reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}


async function updateWork(reqData: any) {
  try {
    const {data} = await axios.post('/work/v1/updateWork', reqData);
    if (data.code === 200) {
      return data.data;
    } else {
      message.error(data.msg);
    }
  } catch (error) {
    handleError(error);
  }
}

export default {
  queryAllSchool,
  login,
  queryTeacher,
  deleteTeacher,
  updateOrAdd,
  queryCourse,
  deleteCourse,
  addCourse,
  updateCourse,
  queryAllCourse,
  queryWork,
  addLearnRecordByHand,
  overview,
  addWork,
  deleteBatchLearnRecord,
  resetPassword,
  changePassword,
  deleteWork,
  updateLearnRecord,
  updateWork,
};